2000 |
How can I change the visual appearance of the filter bar's close button (solid)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptVisible := EXG2ANTTLib_TLB.exFilterBarPromptVisible; Background[EXG2ANTTLib_TLB.exFooterFilterBarButton] := $ff; EndUpdate(); end |
1999 |
Is it possible to prevent definitely showing the filter bar's close button
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptVisible := EXG2ANTTLib_TLB.exFilterBarPromptVisible; Background[EXG2ANTTLib_TLB.exFooterFilterBarButton] := $ffffffff; EndUpdate(); end |
1998 |
Is it possible to show the close button only if there is a filter applied
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarShowCloseIfRequired) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible); EndUpdate(); end |
1997 |
The control's filter bar is not closed once I click the close button (toggle)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); LockedItemCount[EXG2ANTTLib_TLB.exBottom] := 1; h := LockedItem[EXG2ANTTLib_TLB.exBottom,0]; ItemDivider[h] := 0; CellValue[OleVariant(h),OleVariant(0)] := '<c><fgcolor=808080>Press the CTRL + F to turn on/off the control''s filter bar. ALT + Up/Down moves the focus.'; CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML; end; FilterBarCaption := '`<r><fgcolor=808080>` + value'; FilterBarPromptPattern := 'B'; FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarCompact) Or Integer(EXG2ANTTLib_TLB.exFilterBarToggle) Or Integer(EXG2ANTTLib_TLB.exFilterBarSingleLine) Or Integer(EXG2ANTTLib_TLB.exFilterBarVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible); with Columns.Item[OleVariant(0)] do begin FilterType := EXG2ANTTLib_TLB.exFilter; Filter := 'Item B'; end; ApplyFilter(); EndUpdate(); end |
1996 |
How can I display the control's filter on a single line
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarCaption := 'len(value) ? `filter for: <fgcolor 808080>` + value : `<fgcolor 808080>no filter`'; FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarSingleLine) Or Integer(EXG2ANTTLib_TLB.exFilterBarVisible); with Columns.Item[OleVariant(0)] do begin FilterType := EXG2ANTTLib_TLB.exFilter; Filter := 'Item A|Item B'; end; ApplyFilter(); EndUpdate(); end |
1995 |
How can I display the control's filter on a single line (prompt-combined)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarCaption := '`<r>` + value'; FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarCompact) Or Integer(EXG2ANTTLib_TLB.exFilterBarSingleLine) Or Integer(EXG2ANTTLib_TLB.exFilterBarVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible); with Columns.Item[OleVariant(0)] do begin FilterType := EXG2ANTTLib_TLB.exFilter; Filter := 'Item A|Item B'; end; ApplyFilter(); EndUpdate(); end |
1994 |
How can I get the number of results after a filter is applied
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; // Click event - Occurs when the user presses and then releases the left mouse button over the tree control. procedure TForm1.G2antt1Click(ASender: TObject; ); begin with G2antt1 do begin ClearFilter(); end end; // FilterChange event - Occurs when the filter was changed. procedure TForm1.G2antt1FilterChange(ASender: TObject; ); begin with G2antt1 do begin OutputDebugString( 'Items.MatchItemCount' ); OutputDebugString( Items.MatchItemCount ); OutputDebugString( FormatABC('value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`',Items.MatchItemCount,Null,Null) ); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptVisible := EXG2ANTTLib_TLB.exFilterBarPromptVisible; FilterBarPromptPattern := 'Item'; EndUpdate(); end |
1993 |
How can I programmatically clear the control's filter
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; // Click event - Occurs when the user presses and then releases the left mouse button over the tree control. procedure TForm1.G2antt1Click(ASender: TObject; ); begin with G2antt1 do begin ClearFilter(); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptVisible := EXG2ANTTLib_TLB.exFilterBarPromptVisible; FilterBarPromptPattern := 'B'; EndUpdate(); end |
1992 |
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptPattern := 'B'; FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible); with Columns.Item[OleVariant(0)] do begin FilterType := EXG2ANTTLib_TLB.exFilter; Filter := 'Item B'; end; ApplyFilter(); EndUpdate(); end |
1991 |
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarPromptVisible := EXG2ANTTLib_TLB.exFilterBarPromptVisible; FilterBarPromptPattern := 'B'; EndUpdate(); end |
1990 |
Is it possible to prevent closing the control's filter bar, so it is always shown
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin Items.AddBar(Item,'Task','12/4/2017','12/14/2017',Null,Null); end end; with G2antt1 do begin BeginUpdate(); with Chart do begin LevelCount := 2; FirstVisibleDate := '12/2/2017'; PaneWidth[False] := 256; end; (IUnknown(Columns.Add('Item')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; AllowSort := False; Width := 32; FormatColumn := '1 apos ``'; Position := 0; end; with Items do begin AddItem('Item A'); AddItem('Item B'); AddItem('Item C'); end; FilterBarCaption := 'len(value) = 0 ? `<fgcolor=808080>no filter` : value'; FilterBarPromptVisible := EXG2ANTTLib_TLB.exFilterBarVisible; with Columns.Item[OleVariant(0)] do begin FilterType := EXG2ANTTLib_TLB.exFilter; Filter := 'Item B'; end; ApplyFilter(); EndUpdate(); end |
1989 |
What are the options to align the percent caption
with G2antt1 do begin BeginUpdate(); Columns.Add('Clip'); ScrollBySingleLine := True; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; with Chart do begin AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader); DrawGridLines := EXG2ANTTLib_TLB.exRowLines; FirstVisibleDate := '12/26/2000'; LevelCount := 2; PaneWidth[False] := 256; with Bars.Add('Task%Progress') do begin Shortcut := 'Task'; Pattern := EXG2ANTTLib_TLB.exPatternBox; Color := $a4a4a4; StartColor := $f0f0f0; EndColor := StartColor; OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsIncludeCaption) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack); Height := 15; Def[EXG2ANTTLib_TLB.exBarPercent] := OleVariant(0.5); Def[EXG2ANTTLib_TLB.exBarShowPercentCaption] := OleVariant(True); Def[EXG2ANTTLib_TLB.exBarPercentCaptionFormat] := '<sha ;;0>%p%'; end; end; with Items do begin h := AddItem('no clip, (0-2)'); AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(2); AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(1); AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null); ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(0); h := AddItem('clip, inside (3-5)'); AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(5); AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(4); AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null); ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(3); h := AddItem('hide on min width, clip if not fit, inside (6-8)'); AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(8); AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(7); AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null); ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(6); h := AddItem('hide if not fit, no clip, inside (9-11)'); AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(11); AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(10); AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null); ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(9); h := AddItem('no clip, inside, outside (12-14)'); AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(14); AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(13); AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null); ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(12); h := AddItem('no clip, outside (16-18)'); AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null); ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(18); AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null); ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(17); AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null); ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarAlignPercentCaption] := OleVariant(16); end; EndUpdate(); end |
1988 |
Is it possible to determine whether a bar is in the current display area
// BarResizing event - Occurs when a bar is moving or resizing. procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant); begin with G2antt1 do begin Refresh(); end end; // DateChange event - Occurs when the first visible date is changed. procedure TForm1.G2antt1DateChange(ASender: TObject; ); begin with G2antt1 do begin Refresh(); end end; // FormatColumn event - Fired when a cell requires to format its caption. procedure TForm1.G2antt1FormatColumn(ASender: TObject; Item : HITEM;ColIndex : Integer;var Value : OleVariant); begin with G2antt1 do begin s := Items.ItemBar[Item,'A',EXG2ANTTLib_TLB.exBarStart]; e := Items.ItemBar[Item,'A',EXG2ANTTLib_TLB.exBarEnd]; l := FormatABC('A < B',OleVariant(e),Chart.FirstVisibleDate,Null); r := FormatABC('A > B',OleVariant(s),Chart.DateFromPoint[1,-1],Null); Value := FormatABC('( A or B ) ? `<fgcolor=C0C0C0>hidden` : `<b>visible`',OleVariant(l),OleVariant(r),Null); end end; // LayoutChanged event - Occurs when column's position or column's size is changed. procedure TForm1.G2antt1LayoutChanged(ASender: TObject; ); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); SelBackMode := EXG2ANTTLib_TLB.exTransparent; Columns.Add('Tasks'); with (IUnknown(Columns.Add('Visible')) as EXG2ANTTLib_TLB.Column) do begin FireFormatColumn := True; Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); end; with Chart do begin OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll; OverviewHeight := 64; FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; SelBackColor := BackColor; SelForeColor := ForeColor; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/8/2017','A',Null); AddBar(AddItem('Task 2'),'Task','8/3/2018','8/10/2018','A',Null); AddBar(AddItem('Task 3'),'Task','8/4/2019','8/12/2019','A',Null); SelectItem[FocusItem] := True; end; EndUpdate(); end |
1987 |
How can I ensure that the bar fits the control's client area
// SelectionChanged event - Fired after a new item has been selected. procedure TForm1.G2antt1SelectionChanged(ASender: TObject; ); begin with G2antt1 do begin h := Items.FocusItem; k := Items.FirstItemBar[h]; s := FormatABC('(A+B)/2',Items.ItemBar[h,OleVariant(k),EXG2ANTTLib_TLB.exBarStart],Items.ItemBar[h,OleVariant(k),EXG2ANTTLib_TLB.exBarEnd],Null); Chart.ScrollTo(s,OleVariant(1)); end end; with G2antt1 do begin BeginUpdate(); SelBackMode := EXG2ANTTLib_TLB.exTransparent; Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/8/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2018','8/10/2018',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2019','8/12/2019',Null,Null); SelectItem[FocusItem] := True; end; EndUpdate(); end |
1986 |
Is it possible to change the caption from a column without to remove the column and add it with the new caption
with G2antt1 do begin (IUnknown(Columns.Add('ColumnName')) as EXG2ANTTLib_TLB.Column).Caption := 'NewName'; (IUnknown(Columns.Add('ColumnName')) as EXG2ANTTLib_TLB.Column).HTMLCaption := '<b>New</b>Name'; end |
1985 |
How can I display the bar's duration in days, minutes, and so so on
with G2antt1 do begin BeginUpdate(); with Columns do begin (IUnknown(Add('Tasks')) as EXG2ANTTLib_TLB.Column).AllowSizing := False; with (IUnknown(Add('Duration')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(513); Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A'; FormatColumn := 'trim((1:=int((0:=value)/365) ? =:1 + ` year(s) ` : ``) + (1:=int((0:=(=:0 - (=:1*365)))/31) ? =:1 + ` month(s) ` : ``) + (1:=in' + 't((0:=(=:0 - (=:1*31)))/7) ? =:1 + ` week(s) ` : ``) + (1:=int((0:=(=:0 - (=:1*7)))/1) ? =:1 + ` day(s) ` : ``) + (1:=int((0:=(=' + ':0 - =:1 + 1/24/60/60/2))*24) ? =:1 + ` hour(s) ` : ``) + (1:=int((0:=(=:0*24 - =:1))*60) ? =:1 + ` min(s) ` : ``) + (1:=int((0:' + '=(=:0*60 - =:1))*60) ? =:1 + ` sec(s)` : ``))'; end; end; Items.AllowCellValueToItemBar := True; with Chart do begin FirstVisibleDate := '12/30/2001'; LevelCount := 2; PaneWidth[False] := 196; Bars.Add('Task:Split').Shortcut := 'Task'; OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll; OverviewHeight := 64; ResizeUnitScale := EXG2ANTTLib_TLB.exSecond; AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader); end; with Items do begin h := AddItem('Task 1'); AddBar(h,'Task','12/31/2001','1/7/2002','A',Null); h := AddItem('Task 2'); AddBar(h,'Task','1/1/2002','2/14/2002','A',Null); h := AddItem('Task 3'); AddBar(h,'Task','1/2/2002 10:00:00 AM','1/2/2002 12:00:00 PM','A',Null); h := AddItem('Task 4'); AddBar(h,'Task','1/3/2002','1/4/2002 8:30:30 AM','A',Null); end; EndUpdate(); end |
1984 |
How can I change the background color for checked items (EBN color, frame)
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; SelBackMode := EXG2ANTTLib_TLB.exTransparent; DefaultItemHeight := 22; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with VisualAppearance do begin Add(2,'gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx' + '9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcF' + 'qXFSLVxNBKAQEBA='); Add(1,'CP:2 1 1 -1 -1'); end; with ConditionalFormats.Add('%CS0 = 1',Null) do begin BackColor := $1000000; ChartBackColor := BackColor; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1983 |
How can I change the caption of the checked items (sample 2)
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; SelBackColor := BackColor; SelForeColor := ForeColor; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); FormatColumn := '%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value'; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 256; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1982 |
How can I change the caption of the checked items (sample 1)
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)'; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 256; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1981 |
How can I change the font for the checked items
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; DefaultItemHeight := 22; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with ConditionalFormats.Add('%CS0 = 1',Null) do begin f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont); with f do begin Name := G2antt1.Font.Name; Size := 12; end; Font := (IUnknown(f) as stdole_TLB.StdFont); end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 196; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1980 |
How can I bold the checked items
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with ConditionalFormats.Add('%CS0 = 1',Null) do begin Bold := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1979 |
How can I change the foreground color for checked items
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; SelBackMode := EXG2ANTTLib_TLB.exTransparent; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with ConditionalFormats.Add('%CS0 = 1',Null) do begin ForeColor := $8080ff; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1978 |
How can I change the background color for checked items (solid color)
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin Refresh(); end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; SelBackMode := EXG2ANTTLib_TLB.exTransparent; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with ConditionalFormats.Add('%CS0 = 1',Null) do begin BackColor := $8080ff; ChartBackColor := BackColor; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1977 |
How can I change the color for checked Task bars
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with ConditionalFormats.Add('%CS0 = 1',Null) do begin ApplyToBars := 'Task,Summary'; BarColor := $ff; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1976 |
I have defined "NonWorkingHours" for the Gantt, and the "exBarWorkingCount" properly excludes these hours as long as the Gantt is using "exDay" or "exHour" as the level unit. However when displaying a quarter or a year, I'm changing the unit to "exWeek", but then the "NonWorkingHours" are no longer excluded from the bars "exBarWorkingCount" and displays the wrong value
with G2antt1 do begin BeginUpdate(); with Columns do begin (IUnknown(Add('Tasks')) as EXG2ANTTLib_TLB.Column).AllowSizing := False; with (IUnknown(Add('Working')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258); Def[EXG2ANTTLib_TLB.exCellValueToItemBarKey] := 'A'; FormatColumn := '((1:=int(0:=( 24*int(value) + (value - int(value) + 1/24/60/60/2)*24))) != 0 ? =:1 + '' hour(s)'' : '''' ) + (=:1 ? '' '' : '''' ) + ((1' + ':=round((=:0 - =:1)*60)) != 0 ? =:1 + '' min(s)'' : '''')'; end; end; Items.AllowCellValueToItemBar := True; with Chart do begin AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader); PaneWidth[False] := 196; Bars.Add('Task:Split').Shortcut := 'Task'; FirstVisibleDate := '1/3/2002'; LevelCount := 2; Level[0].Label := '<%ddd%>'; Level[1].Label := '<%hh%>'; NonworkingHours := 16761855; ShowNonworkingUnits := False; ShowNonworkingUnits := False; OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll; OverviewHeight := 64; AllowOverviewZoom := EXG2ANTTLib_TLB.exAlwaysZoom; end; with Items do begin h := AddItem('Task 1'); AddBar(h,'Task','1/4/2002','1/8/2002','A',Null); ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True); h := AddItem('Task 2'); AddBar(h,'Task','1/3/2002','1/4/2002','A',Null); ItemBar[h,'A',EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True); end; with Chart do begin UnitScale := EXG2ANTTLib_TLB.exDay; ScrollTo(FirstVisibleDate,OleVariant(1)); end; EndUpdate(); end |
1975 |
Is it possible to customize the editor selection colour of the built in text editor, from standard blue to black
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; SelBackColor := RGB(0,0,0); SelForeColor := RGB(255,255,255); Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('Edit')) as EXG2ANTTLib_TLB.Column).Editor do begin EditType := EXG2ANTTLib_TLB.MaskType; Mask := ';;;rich'; end; with Items do begin AddItem(''); AddItem('Just a text'); AddItem(''); end; EndUpdate(); end |
1974 |
Is it possible to customize the editor selection colour of the built in dropdown editor, from standard blue to black
with G2antt1 do begin BeginUpdate(); SelBackColor := RGB(0,0,0); SelForeColor := RGB(255,255,255); Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('DropDown')) as EXG2ANTTLib_TLB.Column).Editor do begin AddItem(1,'This is just the first item',Null); AddItem(2,'This is just the second item',Null); AddItem(3,'This is just the third item',Null); EditType := EXG2ANTTLib_TLB.DropDownType; Mask := ';;;rich'; end; with Items do begin AddItem(''); AddItem('Just a text'); AddItem(''); end; EndUpdate(); end |
1973 |
When I display the chart in the daily view, the histogram shows correctly the data while if the chart displays the data in weekly or monthly view, the histogram shows no data or incorrectly. What can be the problem
// OverviewZoom event - Occurs once the user selects a new time scale unit in the overview zoom area. procedure TForm1.G2antt1OverviewZoom(ASender: TObject; ); begin with G2antt1 do begin Chart.ResizeUnitScale := EXG2ANTTLib_TLB.exDay; end end; with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with (IUnknown(Columns.Add('Effort')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(21); Editor.EditType := EXG2ANTTLib_TLB.SpinType; end; with Chart do begin AllowOverviewZoom := EXG2ANTTLib_TLB.exAlwaysZoom; OverviewZoomCaption := '|||<img>3</img>Month|Third|<img>2</img>Week|<img>1</img>Day|||'; Label[EXG2ANTTLib_TLB.exYear] := ''; Label[EXG2ANTTLib_TLB.exHalfYear] := ''; Label[EXG2ANTTLib_TLB.exQuarterYear] := ''; Label[EXG2ANTTLib_TLB.exThirdMonth] := ''; Label[EXG2ANTTLib_TLB.exHour] := ''; Label[EXG2ANTTLib_TLB.exMinute] := ''; Label[EXG2ANTTLib_TLB.exSecond] := ''; OverviewZoomUnit := 64; LevelCount := 2; NonworkingDays := 0; PaneWidth[False] := 96; FirstVisibleDate := '6/20/2005'; HistogramVisible := True; HistogramHeight := 128; HistogramView := EXG2ANTTLib_TLB.exHistogramAllItems; OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll; with Bars.Item['Task'] do begin HistogramPattern := Pattern; HistogramType := EXG2ANTTLib_TLB.exHistOverload; HistogramCriticalValue := 3; HistogramItems := -7; HistogramGridLinesColor := $c0c0c0; HistogramRulerLinesColor := $10000; end; end; with Items do begin AllowCellValueToItemBar := True; h1 := AddItem('Task 1'); AddBar(h1,'Task','6/21/2005','6/23/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(4); h1 := AddItem('Task 2'); AddBar(h1,'Task','6/24/2005','6/26/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(3); h1 := AddItem('Task 3'); AddBar(h1,'Task','6/27/2005','6/29/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(2); h1 := AddItem('Task 4'); AddBar(h1,'Task','6/30/2005','7/2/2005',Null,Null); CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(1); end; EndUpdate(); end |
1972 |
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed). procedure TForm1.G2antt1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant); begin with G2antt1 do begin OutputDebugString( 'BeforeExpandItem' ); OutputDebugString( Item ); OutputDebugString( 'ColumnFromPoint' ); OutputDebugString( ColumnFromPoint[-1,-1] ); OutputDebugString( 'ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs.' ); Items.InsertItem(Item,Null,'new child'); end end; with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with Columns do begin (IUnknown(Add('Items')) as EXG2ANTTLib_TLB.Column).DisplayFilterButton := True; end; with Items do begin ItemHasChildren[InsertItem(Null,Null,'Group 1')] := True; ItemHasChildren[InsertItem(Null,Null,'Group 2')] := True; end; EndUpdate(); end |
1971 |
How do I change the drop down filter icon/button (black)
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA'); end; Background[EXG2ANTTLib_TLB.exCursorHoverColumn] := $ffffffff; Background[EXG2ANTTLib_TLB.exHeaderFilterBarButton] := $1000000; Background[EXG2ANTTLib_TLB.exBackColorFilter] := $10000; Background[EXG2ANTTLib_TLB.exForeColorFilter] := $ffffff; Description[EXG2ANTTLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>'; HeaderAppearance := EXG2ANTTLib_TLB.None2; BackColorHeader := RGB(0,0,0); ForeColorHeader := RGB(255,255,255); HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisible; BackColorLevelHeader := BackColor; with (IUnknown(Columns.Add('Filter')) as EXG2ANTTLib_TLB.Column) do begin FilterList := Integer(EXG2ANTTLib_TLB.exShowExclude) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox); DisplayFilterButton := True; AllowSort := False; AllowDragging := False; end; with Chart do begin PaneWidth[False] := 196; LevelCount := 2; BackColorLevelHeader := G2antt1.BackColorHeader; ForeColorLevelHeader := G2antt1.ForeColorHeader; end; with Items do begin AddItem('One'); AddItem('Two'); AddItem('Three'); end; EndUpdate(); end |
1970 |
How do I change the z-order of the bars (percent)
// MouseMove event - Occurs when the user moves the mouse. procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin b := Chart.BarFromPoint[-1,-1]; i := ItemFromPoint[-1,-1,c,hit]; OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarToolTip] ); end end; with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); DefaultItemHeight := 52; with Chart do begin LevelCount := 2; FirstVisibleDate := '10/10/2017'; PaneWidth[False] := 0; NonworkingDays := 0; MarkTodayColor := BackColor; Bars.Add('Task%Progress').Shortcut := 'Task'; with Bars.Copy('Task','T1') do begin Color := $ff; Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%17 + `<b><font ;6><off -4> (z-key `+%9+`)`%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Def[EXG2ANTTLib_TLB.exBarPercent] := OleVariant(0.25); Def[EXG2ANTTLib_TLB.exBarPercentColor] := OleVariant(Color); Def[EXG2ANTTLib_TLB.exBarOffset] := OleVariant(10); Def[EXG2ANTTLib_TLB.exBarShowPercentCaption] := OleVariant(True); Def[EXG2ANTTLib_TLB.exBarPercentCaptionFormat] := '<font ;6><b>%p%</b>'; end; with Bars.Copy('Task','T2') do begin Height := 26; Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%17 + `<b><font ;6><off -4> (z-key `+%9+`)`%>'; Def[EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(16); Def[EXG2ANTTLib_TLB.exBarPercent] := OleVariant(0.25); Def[EXG2ANTTLib_TLB.exBarPercentColor] := OleVariant(Color); Def[EXG2ANTTLib_TLB.exBarShowPercentCaption] := OleVariant(True); Def[EXG2ANTTLib_TLB.exBarPercentCaptionFormat] := '<font ;6><b>%p%</b>'; end; end; with Items do begin h1 := AddItem('Task'); AddBar(h1,'T1','10/15/2017','10/25/2017','2',Null); ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarData] := 'Bar A'; ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar A <b>Over</b> Bar B'; AddBar(h1,'T2','10/18/2017','10/22/2017','1',Null); ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarData] := 'Bar B'; ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar B <b>Under</b> Bar A'; h1 := AddItem('Task'); AddBar(h1,'T1','10/15/2017','10/25/2017','1',Null); ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarData] := 'Bar A'; ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar A <b>Under</b> Bar B'; AddBar(h1,'T2','10/18/2017','10/22/2017','2',Null); ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarData] := 'Bar B'; ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar B <b>Over</b> Bar A'; end; EndUpdate(); end |
1969 |
How do I change the z-order of the bars
// MouseMove event - Occurs when the user moves the mouse. procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer); begin with G2antt1 do begin b := Chart.BarFromPoint[-1,-1]; i := ItemFromPoint[-1,-1,c,hit]; OutputDebugString( Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarToolTip] ); end end; with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); DefaultItemHeight := 52; with Chart do begin LevelCount := 2; FirstVisibleDate := '10/10/2017'; PaneWidth[False] := 0; NonworkingDays := 0; MarkTodayColor := BackColor; with Bars.Copy('Task','T1') do begin Color := $ff; Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%17 + `<b><font ;6><off -4> (z-key `+%9+`)`%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; with Bars.Copy('Task','T2') do begin Height := 25; Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%17 + `<b><font ;6><off -4> (z-key `+%9+`)`%>'; Def[EXG2ANTTLib_TLB.exBarVAlignCaption] := OleVariant(16); end; end; with Items do begin h1 := AddItem('Task'); AddBar(h1,'T1','10/15/2017','10/25/2017','2',Null); ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarData] := 'Bar A'; ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar A <b>Over</b> Bar B'; AddBar(h1,'T2','10/18/2017','10/22/2017','1',Null); ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarData] := 'Bar B'; ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar B <b>Under</b> Bar A'; h1 := AddItem('Task'); AddBar(h1,'T1','10/15/2017','10/25/2017','1',Null); ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarData] := 'Bar A'; ItemBar[h1,'1',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar A <b>Under</b> Bar B'; AddBar(h1,'T2','10/18/2017','10/22/2017','2',Null); ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarData] := 'Bar B'; ItemBar[h1,'2',EXG2ANTTLib_TLB.exBarToolTip] := 'Bar B <b>Over</b> Bar A'; end; EndUpdate(); end |
1968 |
How do I get the duration/working count of the bar (sample 6,excrd)
with G2antt1 do begin BeginUpdate(); DefaultItemHeight := 48; ShowFocusRect := False; SelBackMode := EXG2ANTTLib_TLB.exTransparent; BackColorLevelHeader := BackColor; DrawGridLines := EXG2ANTTLib_TLB.exAllLines; with Chart do begin DrawGridLines := EXG2ANTTLib_TLB.exHLines; PaneWidth[False] := 64; LevelCount := 2; FirstVisibleDate := '12/26/2001'; with Bars.Add('Task:Split') do begin Shortcut := 'Task'; Def[EXG2ANTTLib_TLB.exBarToolTip] := '<%=%263%>'; Def[EXG2ANTTLib_TLB.exBarOffset] := OleVariant(-12); end; ColumnsFormatLevel := '1,2/3'; end; Columns.Add('Tasks'); with (IUnknown(Columns.Add('Duration')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(513); Visible := False; Alignment := EXG2ANTTLib_TLB.LeftAlignment; FormatColumn := 'value + `d`'; end; with (IUnknown(Columns.Add('Working')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258); Visible := False; Alignment := EXG2ANTTLib_TLB.RightAlignment; FormatColumn := 'value + `w`'; end; with (IUnknown(Columns.Add('Working-Period')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(263); Visible := False; Alignment := EXG2ANTTLib_TLB.CenterAlignment; FormatColumn := '((value replace `\r\n` with `,`) replace `#` with ``) replace ` ` with ``'; end; with Items do begin AllowCellValueToItemBar := True; AddBar(AddItem('Task 1'),'Task','1/2/2002','1/11/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/3/2002','1/15/2002',Null,Null); AddBar(AddItem('Task 3'),'Task','12/31/2001','1/13/2002',Null,Null); end; EndUpdate(); end |
1967 |
How do I get the duration/working count of the bar (sample 5)
// AddItem event - Occurs after a new Item has been inserted to Items collection. procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM); begin with G2antt1 do begin with Items do begin ItemMaxHeight[Item] := 64; end; end end; with G2antt1 do begin BeginUpdate(); BackColorAlternate := RGB(240,240,240); with Chart do begin PaneWidth[False] := 256; LevelCount := 2; FirstVisibleDate := '1/1/2002'; with Bars.Add('Task:Split') do begin Shortcut := 'Task'; Def[EXG2ANTTLib_TLB.exBarToolTip] := '<%=%263%>'; end; ColumnsFormatLevel := '1,2'; SelBackColor := G2antt1.SelBackColor; end; with (IUnknown(Columns.Add('Task')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 48; end; with (IUnknown(Columns.Add('Duration')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(513); Visible := False; Alignment := EXG2ANTTLib_TLB.LeftAlignment; end; with (IUnknown(Columns.Add('Working')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258); Visible := False; Alignment := EXG2ANTTLib_TLB.RightAlignment; end; with (IUnknown(Columns.Add('Working-Period')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(263); Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False); end; with Items do begin AllowCellValueToItemBar := True; AddBar(AddItem('Task 1'),'Task','1/2/2002','1/12/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/3/2002','1/15/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/4/2002','1/16/2002',Null,Null); end; EndUpdate(); end |
1966 |
How do I get the duration/working count of the bar (sample 4)
with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 64; LevelCount := 2; FirstVisibleDate := '12/26/2001'; Bars.Add('Task:Split').Shortcut := 'Task'; ColumnsFormatLevel := '1,2'; end; (IUnknown(Columns.Add('Task')) as EXG2ANTTLib_TLB.Column).Width := 48; with (IUnknown(Columns.Add('Duration')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(513); Visible := False; Alignment := EXG2ANTTLib_TLB.LeftAlignment; FormatColumn := 'value + `d`'; end; with (IUnknown(Columns.Add('Working')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258); Visible := False; Alignment := EXG2ANTTLib_TLB.RightAlignment; FormatColumn := 'value + `w`'; end; with Items do begin AllowCellValueToItemBar := True; AddBar(AddItem('Task 1'),'Task','1/2/2002','1/12/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/3/2002','1/15/2002',Null,Null); end; EndUpdate(); end |
1965 |
How do I get the duration/working count of the bar (sample 3)
// BarResizing event - Occurs when a bar is moving or resizing. procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant); begin with G2antt1 do begin with Items do begin OutputDebugString( CellCaption[OleVariant(Item),OleVariant(0)] ); OutputDebugString( 'Working' ); OutputDebugString( ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarWorkingCount] ); OutputDebugString( CellCaption[OleVariant(Item),OleVariant(0)] ); OutputDebugString( 'Duration' ); OutputDebugString( ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarDuration] ); end; end end; with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 64; LevelCount := 2; FirstVisibleDate := '12/26/2001'; Bars.Add('Task:Split').Shortcut := 'Task'; end; (IUnknown(Columns.Add('Task')) as EXG2ANTTLib_TLB.Column).Width := 48; with Items do begin AddBar(AddItem('Task 1'),'Task','1/2/2002','1/12/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/3/2002','1/15/2002',Null,Null); end; EndUpdate(); end |
1964 |
How do I get the duration/working count of the bar (sample 2)
with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 64; LevelCount := 2; FirstVisibleDate := '12/26/2001'; with Bars.Add('Task:Split') do begin Shortcut := 'Task'; Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%258%>w'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Def[EXG2ANTTLib_TLB.exBarExtraCaption] := '<%=%513%>d'; Def[EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(16); end; end; (IUnknown(Columns.Add('Task')) as EXG2ANTTLib_TLB.Column).Width := 48; with Items do begin AddBar(AddItem('Task 1'),'Task','1/2/2002','1/12/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/3/2002','1/15/2002',Null,Null); end; EndUpdate(); end |
1963 |
How do I get the duration/working count of the bar (sample 1)
with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 196; LevelCount := 2; FirstVisibleDate := '1/1/2002'; Bars.Add('Task:Split').Shortcut := 'Task'; end; (IUnknown(Columns.Add('Task')) as EXG2ANTTLib_TLB.Column).Width := 48; (IUnknown(Columns.Add('Duration')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(513); (IUnknown(Columns.Add('Working')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(258); with Items do begin AllowCellValueToItemBar := True; AddBar(AddItem('Task 1'),'Task','1/2/2002','1/12/2002',Null,Null); AddBar(AddItem('Task 2'),'Task','1/3/2002','1/15/2002',Null,Null); end; EndUpdate(); end |
1962 |
How can I draw a solid frame around the the focusing item
with G2antt1 do begin BeginUpdate(); SingleSel := False; DefaultItemHeight := 20; with VisualAppearance do begin RenderType := -1; Add(1,'gBFLBCJwBAEHhEJAAEhABOkGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeDYMiSNoYDJCM4wHI' + 'URRJFCUJSGWQpTgSIgyT5HFIxXKoASbJabZLhWS6EpWOotTbIQQRYCkEyfKKfZyGURZQqOKA1DBZErWTJESRFJqLazgO4LAhyQYrVgAErzVKVCRNOqbJzADApdpGQJTU' + 'LDNTQHRFIyhOSnIRrWbMAhid6JUZiVT4dBOIYhSYANAqCwLFqrDJmWrpV5WZjlZ47V6BdAyXJsIrmFJEXaOGhyDDlGybSDZYryfZhUziUw4XjbWwZDqPF6DKTTdSGLRE' + 'E8WZVlURZvDaep3C+AY8kAYRgGCCBJECUhjDoHROEYWgoAGTQ1CEEx9lGMY0CQUYSnuZQDBGBYFlOH5+H+igGAKAJgEgFgGgGVgDn4CoCmCSA2A6A5hAgDgQgSYRIE4E' + 'oFGGCBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAoLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ2AYOpWlQDQBICA='); end; ShowFocusRect := True; Background[EXG2ANTTLib_TLB.exShowFocusRect] := $1000000; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; Chart.PaneWidth[True] := 1; with (IUnknown(Columns.Add('P1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; end; EndUpdate(); end |
1961 |
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 2)
with G2antt1 do begin BeginUpdate(); SingleSel := False; DefaultItemHeight := 20; ShowFocusRect := True; with VisualAppearance do begin RenderType := -1; Add(2,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeCRUgyJI3RgMUIzVA' + 'cRRFEiUJQlIZZCjOAw0SIMU7xZRcNxsACnaZnCR4NiuRYiUhOcqzRIQIQ4CiEahqOgJbDUJYwWZKAyjBY8XTZFCSJCpeJ6egOc5jRxQUp1WAEXx3GSsJKvCZ5cADBY+V' + 'LQNS0JBtMSTKSLaiuWoIJqCPaDRheWKQJh1NSnLqEcjyYANDxDCZlWzAYxWTZ2Uz7N7PbB0HY4DyPGKZYrfESVRbQcZNS6nNigPI9XhfGq6VjRe63ZaOaYpWrnOJqTRW' + 'jOKYujWdZ2BGO5lkuBAAkmcQkDmDBEAwEQJCgGhMGcQ4pkiSxGAAOYmkQIhvkYNg2gSCgyj+LI4GIMIwF2XQoAYAoAmASAWAaAZgggJgKFiT54DYDoDmECBGBKBJgGgT' + 'gWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChiigYgsgsYYYBYMIKCMKJOCuDRjGiOgLg6Y5InYPoPmQCAkmsXAQDQBCAg='); Add(3,'CP:2 -3 0 3 0'); end; Background[EXG2ANTTLib_TLB.exShowFocusRect] := $3010101; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; Chart.PaneWidth[True] := 1; with (IUnknown(Columns.Add('P1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; end; EndUpdate(); end |
1960 |
The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 1)
with G2antt1 do begin BeginUpdate(); SingleSel := False; ShowFocusRect := True; with VisualAppearance do begin Add(1,'gBFLBCJwBAEHhEJAAEhABHoDg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVA' + 'ceAAGaUZrjSgobjmOYhAJCLqhYIgASXJqLaBlOCaAieSc+QhjQJIJoeCZXU5TFg1BTsOhqEqcRiseaRVDCaIJWzbdYWLDdNQHHKYLjnWorbpSJZ5XjNEySDQkMS9PrEJ' + '7vST8FBCdAABLJUB2BR9RwxRafKpnWwJDpmCaOQLXEB5DK1PyVMTKYrtGy7GrIAJxWxbV4UHh+QABOzIMAvHKJMwvHYcUZne5XVLeF41HbONogPaJZyIAK2cLROq6Xo7' + 'GEcJZEcLASB4DwvgWUZlE6AQQhKAYkkYdA6hyDIwHgSoqFwQgmnsYxjGgSIiBOTpSEiAwRgOJI7j4JAHA6U5wm0MpPlOBIjD8TZiGYCICiCGAuA6AxhAgMgSgOYQ4DYB' + 'g/g6cw1n+ABOmMMJ9DmCwjnScw4RsVJngkYh4hoKIKmKKI2CmC5ikiQgqgiT5jhyMw8g4QwIn0OIKEiCJhD8DwTGyfA7k0WQOEWEQkGkJhIhKZB5DYSoTiSCQEn4PQOC' + 'OXJcCeIJjliaIQk0aRyF4O5llmAhfhgZhJg4ZoYiaAxYn4PZOhOZJaCUZYTiYQw1mcOZUm+HQnHmWh4h6Z4pnYeYfk0eYsmqG4nAgNJ2DqD5DkCWoiGiOgqgyI5omoRo' + 'NiSaQKFKEojCaM4ugSFhOjkAJcieKgDkaH4oioGoOiaKRqgqEoqDddwyhuAxPgOMJ8DyDZqk6NYtCsapmjiLprHqdo6i+K5K1oPhOlqPgKD4DpjnII4yiOewuk6MxtAs' + 'MpSjObQ7EaT4wk6ewYn0PgPAiCJkjeLgDk6X44i4G4OmaORuguEpqDkLAzkaWg+E8GIUmaPIvEOVpzj2Lxbl6eo+G+S5in4OYPmOaJyjuTwjnYWpBg6DAjAqQZwkwJwN' + 'kKcJsEcEJCDBEpaD6Dw8BiapGjGSgfB2RpxmyBwgkicZ8haBw/g+M5TBcPQPlOXJskscp8jsMJMnMLJXDGTZzEyYw2kwMoDlcFw9i2M4/EGUJPg0CxFlENBtCcSJSnQf' + 'Q0m+SgPHsaJ7lALZLG6XZVHWDRfFqVY1k0ZxdladYTnifJUGaeAWAeMnSGcGWgBObJ3lWbwdjKW5cHcTZPHaLkN4GxXDlFqFsA4uRbBOGAFAEIzAsDEFOBkfYqR4D6AO' + 'BEYo8QuBvAmMceInBDgcD0JwOIqQyJ1DMAwG4IANDnHSMoK4QhOgMBGNEIQvQWAdGenETIswGiddsAAQAgCAgA=='); Add(2,'gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADDFIBQSLAYROGSDJBGODJDjWGIeQLOEhQHI' + 'MRxPE6UYLhWYpBDKPYcUbGc7yBBMVwGf59XzACoKSheQIVSDQkw6Fo6NYhAxHALyNRkBy8f60KjtGpodDUJYvW5JYyjBZ8EznOqbJBkeJ7BgOe5NQjaD72VgdWQJFSWJ' + 'ajWYYJDOJY2ZAAE5TVINEwxJbDaylChIdxaF6WAzZEBhBYoATPNLBMrhWqKDw2XaQWBCOgwHYeR5LU7BdRwbIrRq2eAAXbcVyXfDddZlBK+QA0SK9lRVTKvJZmKgBWw1' + 'COSxmAAGw4kcNx1iKFBiCAfQsG8lJemucg7nsXpUHOOxrm+DI3jOH4XAOBx2nscw0j2HhPG4L5uGEVIECQCBCEUAYkGMHQHFGSBlGaAxkEgQgTGCVBsDYQhCgQJZrHKU' + 'ggGEShkFGNgIlsNpPnMHJHD+TADAIJIJiIWIeCqChikiIgmgiD5zHyXxgiACJKCuC4jHiZgtg6I4IlkCQwkwOIonMPJjEkFhGhGZBpA4KoMBCGJuEiE5lAkGg7hMY4JE' + 'YVoUCUNAOE6FZl0KWQACWOR2GKF5mBmChchkJRZhoXYaCKKYqGuDglEmNhuhWZpIiYc4dCcCRqGmHZlgm2YxAwSQKESHwkFkKgpiAIAIH4PIimOOg2DiChoiQJRRD+TZ' + 'DHCfwyAyCgyg+JpiioYJ/DgDgIlECQ6lwRAEICA='); Add(3,'CP:2 -2 0 2 0'); end; SelBackColor := $1000000; SelForeColor := RGB(0,0,0); Chart.PaneWidth[True] := 1; Background[EXG2ANTTLib_TLB.exShowFocusRect] := $3ff0000; LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('P1')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Child 1'); InsertItem(h,Null,'Child 2'); ExpandItem[h] := True; end; EndUpdate(); end |
1959 |
How can I display the start/end margins of bars, when cursor hovers it like a tooltip
with G2antt1 do begin BeginUpdate(); Columns.Add('exBarToolTip'); with Chart do begin PaneWidth[False] := 96; FirstVisibleDate := '1/1/2001'; Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%9 + ''/'' + %C0%></b><br><upline><dotline>Start: <%=%1%><br>End: <%=%2%><br>Duration: <%=(%2-%1)%><br>Working: <%=%258%>'; end; with Items do begin AddBar(AddItem('Bar.Def'),'Task','1/2/2001','1/9/2001','K1',Null); AddBar(AddItem('Bar.Def'),'Task','1/3/2001','1/10/2001','K1',Null); h := AddItem('Items.ItemBar'); AddBar(h,'Unknown','1/4/2001','1/11/2001','K',Null); ItemBar[h,'K',EXG2ANTTLib_TLB.exBarToolTip] := 'Start:<%=%1%><br>End:<%=%2%>'; end; EndUpdate(); end |
1958 |
Is it possible to define different kinds of summary bars with using the EBN files
with G2antt1 do begin BeginUpdate(); with VisualAppearance do begin RenderType := -16777216; Add(1,'gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwHI' + 'ERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6S' + 'TCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKpF' + 'HIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQhaX' + 'QIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC'); Add(2,'gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQGh' + '+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKfa' + 'ZACj4arKejrRDCMAggI='); end; Columns.Add('Task'); with Chart do begin PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; with Bars.Item['Task'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $1; end; with Bars.Item['Summary'] do begin Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); Color := $2000000; end; end; with Items do begin hSummaryJ := AddItem('Summary A'); AddBar(hSummaryJ,'Summary','1/2/2001','1/2/2001','J',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.1'); AddBar(hTaskJ,'Task','1/2/2001','1/5/2001','J1',Null); hTaskJ := InsertItem(hSummaryJ,Null,'Task A.2'); AddBar(hTaskJ,'Task','1/4/2001','1/8/2001','J2',Null); DefineSummaryBars(hSummaryJ,'J',-1,'<*>'); hSummaryK := AddItem('Summary B'); AddBar(hSummaryK,'Summary','1/2/2001','1/2/2001','K',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.1'); AddBar(hTaskK,'Task','1/2/2001','1/5/2001','K1',Null); hTaskK := InsertItem(hSummaryK,Null,'Task B.2'); AddBar(hTaskK,'Task','1/4/2001','1/8/2001','K2',Null); DefineSummaryBars(hSummaryK,'K',-1,'<*>'); ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); hSummaryZ := AddItem('Summary B'); AddBar(hSummaryZ,'Summary','1/2/2001','1/2/2001','Z',Null); hTaskZ := InsertItem(hSummaryZ,Null,'Task B.1'); AddBar(hTaskZ,'Task','1/2/2001','1/5/2001','Z1',Null); hTaskZ := InsertItem(hSummaryZ,Null,'Task B.2'); AddBar(hTaskZ,'Task','1/4/2001','1/8/2001','Z2',Null); DefineSummaryBars(hSummaryZ,'Z',-1,'<*>'); ItemBar[hSummaryZ,'Z',EXG2ANTTLib_TLB.exBarColor] := OleVariant(16842496); ItemBar[0,'<Z1>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(50266112); ItemBar[0,'<Z2>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(33554176); ExpandItem[0] := True; end; EndUpdate(); end |
1957 |
How can I display the week-number in ISO8601 format
with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 0; LevelCount := 2; FirstVisibleDate := '12/12/2007'; DrawGridLines := EXG2ANTTLib_TLB.exAllLines; UnitScale := EXG2ANTTLib_TLB.exWeek; Level[0].FormatLabel := 'value + `<r><off -4><fgcolor=808080><font ;6>` + year(dvalue)'; Level[1].FormatLabel := '(value = 1 ? `<bgcolor=000000><fgcolor=FFFFFF>` : ``) + value'; WeekNumberAs := EXG2ANTTLib_TLB.exISO8601WeekNumber; FirstWeekDay := EXG2ANTTLib_TLB.exMonday; end; EndUpdate(); end |
1956 |
I have a column right-aligned. How can I display its check box aligned to the right, as it appears to the left of the cell's caption
with G2antt1 do begin BeginUpdate(); ColumnAutoResize := True; Chart.PaneWidth[True] := 0; DrawGridLines := EXG2ANTTLib_TLB.exVLines; with Columns do begin with (IUnknown(Add('Left')) as EXG2ANTTLib_TLB.Column) do begin AllowSizing := False; Width := 96; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); FormatColumn := '0 pos `A-Z`'; end; with (IUnknown(Add('Center')) as EXG2ANTTLib_TLB.Column) do begin HeaderAlignment := EXG2ANTTLib_TLB.CenterAlignment; Alignment := HeaderAlignment; AllowSizing := False; Width := 96; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); FormatColumn := '0 pos `A-Z`'; end; with (IUnknown(Add('Right')) as EXG2ANTTLib_TLB.Column) do begin HeaderAlignment := EXG2ANTTLib_TLB.RightAlignment; Alignment := HeaderAlignment; AllowSizing := False; Width := 96; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); FormatColumn := '0 pos `A-Z`'; Def[EXG2ANTTLib_TLB.exCellDrawPartsOrder] := 'caption,check,icon,icons,picture'; end; Add(''); end; with Items do begin CellState[OleVariant(AddItem('Item 1')),OleVariant(3)] := 1; CellState[OleVariant(AddItem('Item 2')),OleVariant(2)] := 1; CellState[OleVariant(AddItem('Item 3')),OleVariant(1)] := 1; end; EndUpdate(); end |
1955 |
Can I display the column's multiple-lines caption vertically oriented (method 2)
with G2antt1 do begin BeginUpdate(); HeaderHeight := 48; ColumnAutoResize := True; Chart.PaneWidth[True] := 0; with Columns do begin Add('And others ...'); with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin HTMLCaption := 'First Column'; HeaderVertical := True; Width := 36; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(8); Position := 0; end; with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin HTMLCaption := '<c><b>Second Column'; HeaderVertical := True; Width := 36; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(8); Position := 1; end; with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin HTMLCaption := '<r>Third Column'; HeaderVertical := True; Width := 36; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(8); Position := 2; end; end; with Items do begin CellState[OleVariant(AddItem('Item 1')),OleVariant(3)] := 1; CellState[OleVariant(AddItem('Item 2')),OleVariant(2)] := 1; CellState[OleVariant(AddItem('Item 3')),OleVariant(1)] := 1; end; EndUpdate(); end |
1954 |
Can I display the column's multiple-lines caption vertically oriented (method 1)
with G2antt1 do begin BeginUpdate(); HeaderHeight := 48; HeaderSingleLine := False; ColumnAutoResize := True; Chart.PaneWidth[True] := 0; with Columns do begin Add('And others ...'); with (IUnknown(Add('First Column')) as EXG2ANTTLib_TLB.Column) do begin HeaderVertical := True; Width := 36; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(8); Position := 0; end; with (IUnknown(Add('Second Column')) as EXG2ANTTLib_TLB.Column) do begin HeaderBold := True; HeaderVertical := True; Width := 36; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(8); Position := 1; end; with (IUnknown(Add('Third Column')) as EXG2ANTTLib_TLB.Column) do begin HeaderVertical := True; Width := 36; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Def[EXG2ANTTLib_TLB.exCellPaddingLeft] := OleVariant(8); Position := 2; end; end; with Items do begin CellState[OleVariant(AddItem('Item 1')),OleVariant(3)] := 1; CellState[OleVariant(AddItem('Item 2')),OleVariant(2)] := 1; CellState[OleVariant(AddItem('Item 3')),OleVariant(1)] := 1; end; EndUpdate(); end |
1953 |
Can I display the column's caption vertically oriented (method 2)
with G2antt1 do begin BeginUpdate(); HeaderHeight := 48; ColumnAutoResize := True; Chart.PaneWidth[True] := 0; with Columns do begin Add('And others ...'); with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin HTMLCaption := 'First'; HeaderVertical := True; Width := 20; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Position := 0; end; with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin HTMLCaption := '<c><b>Second'; HeaderVertical := True; Width := 20; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Position := 1; end; with (IUnknown(Add('')) as EXG2ANTTLib_TLB.Column) do begin HTMLCaption := '<r>Third'; HeaderVertical := True; Width := 20; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Position := 2; end; end; with Items do begin CellState[OleVariant(AddItem('Item 1')),OleVariant(3)] := 1; CellState[OleVariant(AddItem('Item 2')),OleVariant(2)] := 1; CellState[OleVariant(AddItem('Item 3')),OleVariant(1)] := 1; end; EndUpdate(); end |
1952 |
Can I display the column's caption vertically oriented (method 1)
with G2antt1 do begin BeginUpdate(); HeaderHeight := 48; ColumnAutoResize := True; Chart.PaneWidth[True] := 0; with Columns do begin Add('And others ...'); with (IUnknown(Add('First')) as EXG2ANTTLib_TLB.Column) do begin HeaderVertical := True; Width := 20; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Position := 0; end; with (IUnknown(Add('Second')) as EXG2ANTTLib_TLB.Column) do begin HeaderBold := True; HeaderVertical := True; Width := 20; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Position := 1; end; with (IUnknown(Add('Third')) as EXG2ANTTLib_TLB.Column) do begin HeaderVertical := True; Width := 20; AllowSizing := False; Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Position := 2; end; end; with Items do begin CellState[OleVariant(AddItem('Item 1')),OleVariant(3)] := 1; CellState[OleVariant(AddItem('Item 2')),OleVariant(2)] := 1; CellState[OleVariant(AddItem('Item 3')),OleVariant(1)] := 1; end; EndUpdate(); end |
1951 |
How can I resize all task-bars 0-length
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/3/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/5/2017',Null,Null); ItemBarEx['itembar(513) = 0 and itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); ItemBarEx['itembar(513) = 0 and itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarDuration] := 'value + 1'; end; EndUpdate(); end |
1950 |
Is it possible to mark items that holds items with 0-length (zero,empty, sample 3)
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with (IUnknown(Columns.Add('Duration')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(513); Visible := False; end; with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with ConditionalFormats.Add('%1 = 0',Null) do begin Bold := True; BackColor := $bebebe; ChartBackColor := BackColor; end; with Items do begin AllowCellValueToItemBar := True; AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/3/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/5/2017',Null,Null); end; EndUpdate(); end |
1949 |
Is it possible to mark items that holds items with 0-length (zero,empty, sample 2)
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/3/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/5/2017',Null,Null); ItemBarEx['itembar(513) = 0',EXG2ANTTLib_TLB.exBarCaption] := '`zero-length`'; end; EndUpdate(); end |
1948 |
Is it possible to mark items that holds items with 0-length (zero,empty, sample 1)
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/3/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/5/2017',Null,Null); ItemBarEx['itembar(513) = 0',EXG2ANTTLib_TLB.exBarBackgroundExt] := '`[frame=RGB(255,0,0),framethick,pattern=6,patterncolor=RGB(255,0,0)]`'; ItemBarEx['itembar(513) = 0',EXG2ANTTLib_TLB.exBarBackgroundExtInflate] := '`-4,-4,4,4`'; end; EndUpdate(); end |
1947 |
How can I find how many tasks/bars of 0-length (zero,empty) do I have
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/3/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/5/2017',Null,Null); OutputDebugString( ItemBarEx['itembar(513) = 0',EXG2ANTTLib_TLB.exBarsCount] ); end; EndUpdate(); end |
1946 |
How can I remove all bars from selected items
with G2antt1 do begin BeginUpdate(); SingleSel := False; Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; SelBackColor := $f0f0f0; with Bars.Item['Task'] do begin OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack; OverlaidGroup := 'Task,Task-Diff'; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; with Bars.Copy('Task','Task-Diff') do begin Height := 4; Color := $ff; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(16); end; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); h := AddItem('Task 2'); AddBar(h,'Task','8/3/2017','8/9/2017',Null,Null); SelectItem[h] := True; h := AddItem('Task 3'); AddBar(h,'Task','8/4/2017','8/13/2017','',Null); AddBar(h,'Task-Diff','8/5/2017','8/14/2017','P',Null); SelectItem[h] := True; AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); OutputDebugString( 'Bars before remove: ' ); OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] ); ItemBarEx['itemisselected',EXG2ANTTLib_TLB.exBarKey] := '`toberemove` + value '; RemoveBar(0,'<toberemove*>'); OutputDebugString( 'Bars after remove: ' ); OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] ); end; EndUpdate(); end |
1945 |
How can I remove task bars from selected items
with G2antt1 do begin BeginUpdate(); SingleSel := False; Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; SelBackColor := $f0f0f0; with Bars.Item['Task'] do begin OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack; OverlaidGroup := 'Task,Task-Diff'; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; with Bars.Copy('Task','Task-Diff') do begin Height := 4; Color := $ff; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(16); end; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); h := AddItem('Task 2'); AddBar(h,'Task','8/3/2017','8/9/2017',Null,Null); SelectItem[h] := True; h := AddItem('Task 3'); AddBar(h,'Task','8/4/2017','8/13/2017','',Null); AddBar(h,'Task-Diff','8/5/2017','8/14/2017','P',Null); SelectItem[h] := True; AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); OutputDebugString( 'Bars before remove: ' ); OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] ); ItemBarEx['itemisselected and itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarKey] := '`toberemove` + value '; RemoveBar(0,'<toberemove*>'); OutputDebugString( 'Bars after remove: ' ); OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] ); end; EndUpdate(); end |
1944 |
How can I change the pattern for some bars only
with G2antt1 do begin BeginUpdate(); (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); h := AddItem('Task 2'); AddBar(h,'Task','8/3/2017','8/9/2017',Null,Null); CellState[OleVariant(h),OleVariant(0)] := 1; h := AddItem('Task 3'); AddBar(h,'Task','8/4/2017','8/13/2017',Null,Null); CellState[OleVariant(h),OleVariant(0)] := 1; AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx['cellstate(0)',EXG2ANTTLib_TLB.exBarPattern] := OleVariant(6); end; EndUpdate(); end |
1943 |
How do I apply the same effort to all bars
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; HistogramView := EXG2ANTTLib_TLB.exHistogramAllItems; HistogramVisible := True; HistogramHeight := 64; with Bars.Item['Task'] do begin HistogramPattern := EXG2ANTTLib_TLB.exPatternBDiagonal; HistogramType := EXG2ANTTLib_TLB.exHistOverAllocation; end; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarEffort] := OleVariant(2); end; EndUpdate(); end |
1942 |
How do I apply the same percent to all bars
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Add('Task%Progress') do begin Shortcut := 'Task'; Def[EXG2ANTTLib_TLB.exBarShowPercentCaption] := OleVariant(True); end; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarPercent] := OleVariant(0.5); end; EndUpdate(); end |
1941 |
How can I set the same duration for all bars
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarDuration] := OleVariant(4); end; EndUpdate(); end |
1940 |
How do I move all bars to end at the same date-time
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarMoveEnd] := '#8/15/2017#'; end; EndUpdate(); end |
1939 |
How do I move all bars to start at the same date-time
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarMoveStart] := '#8/2/2017#'; end; EndUpdate(); end |
1938 |
How do I apply a new color for some bars, while others should be shown with a different color
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; SelBackColor := $f0f0f0; with Bars.Item['Task'] do begin OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack; OverlaidGroup := 'Task,Task-Diff'; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; with Bars.Copy('Task','Task-Diff') do begin Height := 4; Color := $ff; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(16); end; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); h := AddItem('Task 3'); AddBar(h,'Task','8/4/2017','8/13/2017','',Null); AddBar(h,'Task-Diff','8/5/2017','8/14/2017','P',Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarColor] := 'cellcaption(0) like `*2` ? 0x0000FF : 0x00FF00'; end; EndUpdate(); end |
1937 |
How do I hide some bars, and show others
with G2antt1 do begin BeginUpdate(); SingleSel := False; Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; SelBackColor := $f0f0f0; with Bars.Item['Task'] do begin OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack; OverlaidGroup := 'Task,Task-Diff'; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18); end; with Bars.Copy('Task','Task-Diff') do begin Height := 4; Color := $ff; Def[EXG2ANTTLib_TLB.exBarCaption] := '<font ;6><%=%0%>'; Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(16); end; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); h := AddItem('Task 2'); AddBar(h,'Task','8/3/2017','8/9/2017',Null,Null); SelectItem[h] := True; h := AddItem('Task 3'); AddBar(h,'Task','8/4/2017','8/13/2017','',Null); AddBar(h,'Task-Diff','8/5/2017','8/14/2017','P',Null); SelectItem[h] := True; AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); ItemBarEx['-1',EXG2ANTTLib_TLB.exBarTransparent] := 'itembar(0) = `Task` ? 0 : 100'; end; EndUpdate(); end |
1936 |
I like how ItemBarEx works, the question is how can I remove the bars based on the same criteria
with G2antt1 do begin BeginUpdate(); Columns.Add('Tasks'); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; end; with Items do begin AddBar(AddItem('Task 1'),'Task','8/2/2017','8/6/2017',Null,Null); AddBar(AddItem('Task 2'),'Task','8/3/2017','8/9/2017',Null,Null); AddBar(AddItem('Task 3'),'Task','8/4/2017','8/13/2017',Null,Null); AddBar(AddItem('Task 4'),'Task','8/5/2017','8/16/2017',Null,Null); OutputDebugString( 'Bars before remove: ' ); OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] ); ItemBarEx['cellcaption(0) like `*2 *3`',EXG2ANTTLib_TLB.exBarKey] := '`toberemove` + value '; RemoveBar(0,'<toberemove*>'); OutputDebugString( 'Bars after remove: ' ); OutputDebugString( ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarsCount] ); end; EndUpdate(); end |
1935 |
Is it possible to automatically color the bar being checked
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin end; with G2antt1 do begin BeginUpdate(); SelBackMode := EXG2ANTTLib_TLB.exTransparent; with Chart do begin LevelCount := 2; PaneWidth[False] := 256; FirstVisibleDate := '1/1/2017'; end; with ConditionalFormats.Add('%CS0','check') do begin Bold := True; ApplyToBars := 'Task'; BarColor := $10000; end; with (IUnknown(Columns.Add('Items')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); Width := 256; end; (IUnknown(Columns.Add(G2antt1.ConditionalFormats.Item['check'].Expression)) as EXG2ANTTLib_TLB.Column).FormatColumn := G2antt1.ConditionalFormats.Item['check'].Expression; with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2017','1/12/2017',Null,Null); h := AddItem('Item 2'); AddBar(h,'Task','1/3/2017','1/13/2017',Null,Null); CellState[OleVariant(h),OleVariant(0)] := 1; h := AddItem('Item 3'); AddBar(h,'Task','1/4/2017','1/14/2017',Null,Null); CellState[OleVariant(h),OleVariant(0)] := 1; end; EndUpdate(); end |
1934 |
How do I automatically bold items being checked
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin end; with G2antt1 do begin BeginUpdate(); SelBackMode := EXG2ANTTLib_TLB.exTransparent; Chart.PaneWidth[True] := 0; with ConditionalFormats.Add('%CS0','check') do begin Bold := True; end; (IUnknown(Columns.Add('Items')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); (IUnknown(Columns.Add(G2antt1.ConditionalFormats.Item['check'].Expression)) as EXG2ANTTLib_TLB.Column).FormatColumn := G2antt1.ConditionalFormats.Item['check'].Expression; with Items do begin AddItem('Item 1'); CellState[OleVariant(AddItem('Item 2')),OleVariant(0)] := 1; AddItem('Item 3'); end; EndUpdate(); end |
1933 |
Can I display the radio-button with a solid color
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; RadioImage[False] := 32699122; RadioImage[True] := 16777216; (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellHasRadioButton] := OleVariant(True); with Items do begin AddItem('Radio 1'); CellState[OleVariant(AddItem('Radio 2')),OleVariant(0)] := 1; AddItem('Radio 1'); end; EndUpdate(); end |
1932 |
Can I display the check-box with a solid color
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; CheckImage[EXG2ANTTLib_TLB.Unchecked] := 32699122; CheckImage[EXG2ANTTLib_TLB.Checked] := 16777216; (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); with Items do begin AddItem('Check 1'); CellState[OleVariant(AddItem('Check 2')),OleVariant(0)] := 1; AddItem('Check 3'); end; EndUpdate(); end |
1931 |
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exGroupLinesInsideLeaf; SelBackMode := EXG2ANTTLib_TLB.exTransparent; Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('Items')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; with (IUnknown(Columns.Add('Format')) as EXG2ANTTLib_TLB.Column) do begin FormatColumn := '%CS0'; Caption := FormatColumn; Def[EXG2ANTTLib_TLB.exCellForeColor] := OleVariant(8421504); Def[EXG2ANTTLib_TLB.exHeaderForeColor] := Def[EXG2ANTTLib_TLB.exCellForeColor]; end; with Items do begin h := AddItem('Root'); InsertItem(h,Null,'Item 1'); CellState[OleVariant(InsertItem(h,Null,'Item 2')),OleVariant(0)] := 1; CellState[OleVariant(InsertItem(h,Null,'Item 3')),OleVariant(0)] := 1; ExpandItem[h] := True; end; EndUpdate(); end |
1930 |
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; Columns.Add('Items'); with (IUnknown(Columns.Add('Format')) as EXG2ANTTLib_TLB.Column) do begin FormatColumn := '%CD0'; Caption := FormatColumn; Def[EXG2ANTTLib_TLB.exCellForeColor] := OleVariant(8421504); Def[EXG2ANTTLib_TLB.exHeaderForeColor] := Def[EXG2ANTTLib_TLB.exCellForeColor]; end; with Items do begin CellData[OleVariant(AddItem('Item 1')),OleVariant(0)] := OleVariant(1234); CellData[OleVariant(AddItem('Item 2')),OleVariant(0)] := 'this is just an user data'; CellData[OleVariant(AddItem('Item 3')),OleVariant(0)] := '1/1/2001'; end; EndUpdate(); end |
1929 |
How can I use the CellValue/CellCaption with ConditionalFormat/ComputedField/FormatColumn
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('Items')) as EXG2ANTTLib_TLB.Column) do begin with Editor do begin EditType := EXG2ANTTLib_TLB.DropDownListType; AddItem(1,'Item 1',Null); AddItem(2,'Item 2',Null); AddItem(3,'Item 3',Null); end; end; with (IUnknown(Columns.Add('Format')) as EXG2ANTTLib_TLB.Column) do begin FormatColumn := '%0'; Caption := FormatColumn; Def[EXG2ANTTLib_TLB.exCellForeColor] := OleVariant(8421504); Def[EXG2ANTTLib_TLB.exHeaderForeColor] := Def[EXG2ANTTLib_TLB.exCellForeColor]; AllowSizing := False; end; with (IUnknown(Columns.Add('Format')) as EXG2ANTTLib_TLB.Column) do begin FormatColumn := '%C0'; Caption := FormatColumn; Def[EXG2ANTTLib_TLB.exCellForeColor] := OleVariant(8421504); Def[EXG2ANTTLib_TLB.exHeaderForeColor] := Def[EXG2ANTTLib_TLB.exCellForeColor]; AllowSizing := False; end; with Items do begin AddItem(OleVariant(1)); CellValue[OleVariant(AddItem(OleVariant(0))),OleVariant(0)] := OleVariant(2); AddItem(OleVariant(2)); end; EndUpdate(); end |
1928 |
How can I use the ShowNonworkingHours property (hide the non-working hours)
with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 0; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exHour; NonworkingHours := 16253183; ShowNonworkingHours := False; ShowNonworkingUnits := False; end; EndUpdate(); end |
1927 |
How can I use the ShowNonworkingDates property (hide the non-working days)
with G2antt1 do begin BeginUpdate(); with Chart do begin PaneWidth[False] := 0; LevelCount := 2; UnitScale := EXG2ANTTLib_TLB.exDay; ShowNonworkingDates := False; ShowNonworkingUnits := False; end; EndUpdate(); end |
1926 |
How can I show/hide bars once the user checks or un-checks a column
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin with Items do begin ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarTransparent] := 'cellstate(0) = 1 ? 0 : 100'; end; end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarTransparent] := 'cellstate(0) = 1 ? 0 : 100'; end; EndUpdate(); end |
1925 |
How can I change the color for all Task bars
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarColor] := OleVariant(65280); end; EndUpdate(); end |
1924 |
Is it possible to automatically select bars only when user selects a new item
// SelectionChanged event - Fired after a new item has been selected. procedure TForm1.G2antt1SelectionChanged(ASender: TObject; ); begin with G2antt1 do begin with Items do begin ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarSelected] := 'itemisselected'; end; end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; Columns.Add('Tasks'); HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin AllowSelectObjects := EXG2ANTTLib_TLB.exNoSelectObjects; FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1923 |
Is it possible to automatically select bars only when the user clicks the column's checkbox
// CellStateChanged event - Fired after cell's state has been changed. procedure TForm1.G2antt1CellStateChanged(ASender: TObject; Item : HITEM;ColIndex : Integer); begin with G2antt1 do begin with Items do begin ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarSelected] := 'cellstate(0) = 1'; end; end end; with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin AllowSelectObjects := EXG2ANTTLib_TLB.exNoSelectObjects; FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; end; EndUpdate(); end |
1922 |
How do I select all bars on leaf items
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['itemlevel = 1',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); end; EndUpdate(); end |
1921 |
How can I change the caption for all checked Task bars
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['(cellstate(0) = 1) and (itembar(0) = `Task`)',EXG2ANTTLib_TLB.exBarCaption] := '`new caption`'; end; EndUpdate(); end |
1920 |
How can I change the caption for all Task bars
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['(itembar(0) = `Task`)',EXG2ANTTLib_TLB.exBarCaption] := '`new caption`'; end; EndUpdate(); end |
1919 |
How can I change the caption for all bars
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarCaption] := '`new caption`'; end; EndUpdate(); end |
1918 |
How can I move all Task bars to end at the same date time
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['(itembar(0) = `Task`)',EXG2ANTTLib_TLB.exBarMove] := '#8/14/2017# - itembar(2)'; end; EndUpdate(); end |
1917 |
How can I move all Task bars to start at the same date time
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['(itembar(0) = `Task`)',EXG2ANTTLib_TLB.exBarMove] := '#8/3/2017# - itembar(1)'; end; EndUpdate(); end |
1916 |
How can I change the color for checked Task bars
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['cellstate(0) = 1 and itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255); end; EndUpdate(); end |
1915 |
How do I resize all Task bars programatically
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarEnd] := 'value + 2'; end; EndUpdate(); end |
1914 |
How do I move just the checked Task bars in the chart
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['cellstate(0) = 1 and itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarMove] := OleVariant(-2); end; EndUpdate(); end |
1913 |
How do I move all Task bars in the chart
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarMove] := OleVariant(1); end; EndUpdate(); end |
1912 |
How do I count all Task bars in the chart
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; Columns.Add('Tasks'); HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; OutputDebugString( ItemBarEx['itembar(0) = `Task`',EXG2ANTTLib_TLB.exBarsCount] ); end; EndUpdate(); end |
1911 |
How do I select bars whose items are checked
with G2antt1 do begin BeginUpdate(); LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot; with (IUnknown(Columns.Add('Tasks')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True); PartialCheck := True; end; HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels; SelBackColor := RGB(240,240,240); SelForeColor := RGB(0,0,0); with Chart do begin FirstVisibleDate := '8/1/2017'; LevelCount := 2; PaneWidth[False] := 128; with Bars.Item['Summary'] do begin StartShape := EXG2ANTTLib_TLB.exShapeIconEmpty; EndShape := EXG2ANTTLib_TLB.exShapeIconEmpty; Shape := EXG2ANTTLib_TLB.exShapeThinDown; end; SelBackColor := G2antt1.SelBackColor; SelBarColor := $808080; end; with Items do begin h := AddItem('Project'); hChild := InsertItem(h,Null,'Task 1'); AddBar(hChild,'Task','8/2/2017','8/8/2017',Null,Null); SelectItem[hChild] := True; hChild := InsertItem(h,Null,'Task 2'); AddBar(hChild,'Task','8/3/2017','8/10/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; hChild := InsertItem(h,Null,'Task 3'); AddBar(hChild,'Task','8/4/2017','8/12/2017',Null,Null); CellState[OleVariant(hChild),OleVariant(0)] := 1; AddBar(h,'Summary','8/1/2017','8/1/2017','sum',Null); DefineSummaryBars(h,'sum',-3,''); ExpandItem[h] := True; ItemBarEx['cellstate(0) = 1',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); end; EndUpdate(); end |
1910 |
How can I select all bars, where a specified column matches a specified criteria
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); Chart.FirstVisibleDate := '1/1/2001'; Chart.PaneWidth[False] := 48; Chart.SelBarColor := $ff; with Items do begin h := AddItem('Task 1'); AddBar(h,'Task','1/2/2001','1/4/2001','K1','K1'); AddBar(h,'Task','1/5/2001','1/7/2001','K2','K2'); AddBar(h,'Task','1/8/2001','1/10/2001','P','P'); AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q'); AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','M','M'); ItemBarEx['cellcaption(0) = `Task 1`',EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); end; EndUpdate(); end |
1909 |
How can I select/unselect all bars
with G2antt1 do begin BeginUpdate(); Columns.Add('Task'); Chart.FirstVisibleDate := '1/1/2001'; Chart.PaneWidth[False] := 48; Chart.SelBarColor := $ff; with Items do begin h := AddItem('Task 1'); AddBar(h,'Task','1/2/2001','1/4/2001','K1','K1'); AddBar(h,'Task','1/5/2001','1/7/2001','K2','K2'); AddBar(h,'Task','1/8/2001','1/10/2001','P','P'); AddBar(AddItem('Task 2'),'Task','1/2/2001','1/4/2001','Q','Q'); AddBar(AddItem('Task 4'),'Task','1/2/2001','1/4/2001','M','M'); ItemBarEx[OleVariant(True),EXG2ANTTLib_TLB.exBarSelected] := OleVariant(True); end; EndUpdate(); end |
1908 |
Is it possible to set the background color of the chart for one item and one day
with G2antt1 do begin BeginUpdate(); Columns.Add('Items'); with Chart do begin LevelCount := 2; PaneWidth[False] := 96; FirstVisibleDate := '1/1/2001'; end; with Items do begin AddItem('Item'); h := AddItem('Item'); AddBar(h,'','1/2/2001','1/3/2001','Back',' '); ItemBar[h,'Back',EXG2ANTTLib_TLB.exBarBackColor] := OleVariant(255); ItemBar[h,'Back',EXG2ANTTLib_TLB.exBarSelectable] := OleVariant(False); AddItem('Item'); end; EndUpdate(); end |
1907 |
It is possible to search for an item ( inside the Editor ), case insensitive
with G2antt1 do begin BeginUpdate(); with (IUnknown(Columns.Add('DropDownList')) as EXG2ANTTLib_TLB.Column).Editor do begin EditType := EXG2ANTTLib_TLB.DropDownListType; AddItem(1,'One',Null); AddItem(2,'Two',Null); AddItem(3,'Three',Null); end; with Items do begin AddItem(G2antt1.Columns.Item[OleVariant(0)].Editor.FindItem['>ONE']); AddItem(G2antt1.Columns.Item[OleVariant(0)].Editor.FindItem['>ThRee']); AddItem(G2antt1.Columns.Item[OleVariant(0)].Editor.FindItem['ONE']); AddItem(G2antt1.Columns.Item[OleVariant(0)].Editor.FindItem['>tWo']); end; EndUpdate(); end |
1906 |
The text after the BR-tag is in same line as the text before the BR-tag (entire column)
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exHLines; Chart.PaneWidth[True] := 0; with (IUnknown(Columns.Add('Default')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1); Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False); end; with Items do begin AddItem('This is the first line.<br>This is the second line.'); AddItem('This is the first line.<br>This is the second line.'); AddItem('This is the first line.<br>This is the second line.'); end; EndUpdate(); end |
1905 |
The text after the BR-tag is in same line as the text before the BR-tag (individual)
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exHLines; Chart.PaneWidth[True] := 0; Columns.Add('Default'); with Items do begin CellValueFormat[OleVariant(AddItem('This is the first line.<br>This is the second line.')),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML; h := AddItem('<b>This is the first line.<br>This is the second line.</b>'); CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML; CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap; CellValueFormat[OleVariant(AddItem('This is the first line.<br>This is the second line.')),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML; end; EndUpdate(); end |
1904 |
How do I prevent showing the control's BackColorAlternate property on empty / non-items part of the control
with G2antt1 do begin BeginUpdate(); DrawGridLines := EXG2ANTTLib_TLB.exAllLines; with Chart do begin DrawGridLines := EXG2ANTTLib_TLB.exAllLines; LevelCount := 2; PaneWidth[False] := 128; FirstVisibleDate := '1/1/2001'; end; BackColorAlternate := $7ff0f0f0; BackColorLevelHeader := BackColor; Columns.Add('Column'); with Items do begin AddBar(AddItem('Item 1'),'Task','1/2/2001','1/12/2001',Null,Null); AddBar(AddItem('Item 2'),'Task','1/3/2001','1/13/2001',Null,Null); AddBar(AddItem('Item 3'),'Task','1/2/2001','1/12/2001',Null,Null); AddBar(AddItem('Item 4'),'Task','1/3/2001','1/13/2001',Null,Null); AddBar(AddItem('Item 5'),'Task','1/2/2001','1/12/2001',Null,Null); end; EndUpdate(); end |
1903 |
Can I disable an item once the user selects a new value into a different item
// Change event - Occurs when the user changes the cell's content. procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant); begin with G2antt1 do begin with Items do begin EnableItem[ItemByIndex[1]] := False; end; end end; with G2antt1 do begin FreezeEvents(True); BeginUpdate(); Chart.PaneWidth[True] := 0; ScrollBySingleLine := True; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; Columns.Add('Q'); Columns.Add('A'); with Items do begin h1 := AddItem('What''s your gender?'); with CellEditor[OleVariant(h1),OleVariant(1)] do begin EditType := EXG2ANTTLib_TLB.DropDownListType; AddItem(1,'Male',Null); AddItem(0,'Female',Null); end; CellValue[OleVariant(h1),OleVariant(1)] := OleVariant(1); h2 := AddItem('What''s pet name?'); CellValue[OleVariant(h2),OleVariant(1)] := 'This is my pet favorite long long long name, that shoul break the line in multiple pieces'; CellSingleLine[OleVariant(h2),OleVariant(1)] := EXG2ANTTLib_TLB.exCaptionWordWrap; end; EndUpdate(); FreezeEvents(False); end |
1902 |
How can I get a row expanded / enlarged to fit the cell's text (entire column)
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; ScrollBySingleLine := True; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; Columns.Add('Q'); with (IUnknown(Columns.Add('A')) as EXG2ANTTLib_TLB.Column) do begin Def[EXG2ANTTLib_TLB.exCellSingleLine] := OleVariant(False); with Editor do begin EditType := EXG2ANTTLib_TLB.MemoType; Appearance := EXG2ANTTLib_TLB.SingleApp; end; end; with Items do begin h1 := AddItem('What''s name?'); CellValue[OleVariant(h1),OleVariant(1)] := 'This is my pet favorite long long long name, that shoul break the line in multiple pieces'; h2 := AddItem('What''s your pet name?'); CellValue[OleVariant(h2),OleVariant(1)] := 'This is my pet favorite long long long name, that shoul break the line in multiple pieces'; end; EndUpdate(); end |
1901 |
How can I get a row expanded / enlarged to fit the cell's text (individual cell)
with G2antt1 do begin BeginUpdate(); Chart.PaneWidth[True] := 0; ScrollBySingleLine := True; DrawGridLines := EXG2ANTTLib_TLB.exRowLines; Columns.Add('Q'); Columns.Add('A'); with Items do begin h1 := AddItem('What''s name?'); CellValue[OleVariant(h1),OleVariant(1)] := 'This is my pet favorite long long long name, that shoul break the line in multiple pieces'; h2 := AddItem('What''s your pet name?'); with CellEditor[OleVariant(h2),OleVariant(1)] do begin EditType := EXG2ANTTLib_TLB.MemoType; Appearance := EXG2ANTTLib_TLB.SingleApp; end; CellValue[OleVariant(h2),OleVariant(1)] := 'This is my pet favorite long long long name, that shoul break the line in multiple pieces'; CellSingleLine[OleVariant(h2),OleVariant(1)] := EXG2ANTTLib_TLB.exCaptionWordWrap; end; EndUpdate(); end |